<?php
class Polling_con extends CI_Controller {
    function __construct() {
        parent::__construct();
    }
    function index() {
    
        $this->home_topic();
    }
    function home_topic($page = 1){
         if ($this->session->userdata('login')!=TRUE) {
            redirect(base_url().'feedback_result/feedback_result_con/error_display');
        }
        // mengambil list topik
        $list_topik = $this->db->query('SELECT ID_TEMA,NAMA_TEMA from tema_poling')->result_array();

        if (count($list_topik)>0){ // minimal ada satu topik
            // mengambil jumlah responden tanpa mempedulikan course yang tidak memiliki id_tema versi nomor sesi
            //$count_responden_all = $this->db->query('SELECT COUNT(ID_USER), KODE_PELATIHAN,ANGKATAN,NOMOR_SESI FROM `jawaban` group by KODE_PELATIHAN,ANGKATAN,NOMOR_SESI')->result_array();

            // mengambil jumlah responden tanpa mempedulikan course yang tidak memiliki id_tema versi tanpa nomor sesi
            $count_responden_all = $this->db->query('SELECT COUNT(ID_USER), KODE_PELATIHAN,ANGKATAN FROM `jawaban` group by KODE_PELATIHAN,ANGKATAN')->result_array();

            for ($i=0;$i<count($list_topik);$i++){
                // debugging
                // echo "<br>".$list_topik[$i]['ID_TEMA']."<br>";

                // mengambil jumlah responden dengan id_tema tertentu versi nomor sesi
                //$count_responden = $this->db->query('SELECT count(ID_USER) as jumlah_responden,jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,jawaban.NOMOR_SESI,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
                //    sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$list_topik[$i]['ID_TEMA'].' group by jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,jawaban.NOMOR_SESI,sesi_pelatihan.ID_TEMA ')->result_array();

                // mengambil jumlah responden dengan id_tema tertentu versi tanpa nomor sesi
//                $count_responden = $this->db->query('SELECT count(ID_USER) as jumlah_responden,jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
//                    sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$list_topik[$i]['ID_TEMA'].' group by jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA ')->result_array();
                // REVISI
                $count_responden = $this->db->query('SELECT distinct ID_USER as jumlah_responden,jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
                    sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$list_topik[$i]['ID_TEMA'].'')->result_array();
                if (count($count_responden)>0){
                    // menghitung manual setiap topik
                    $sum=0;
//                    for ($j=0;$j<count($count_responden);$j++){
//                        if ($count_responden[$j]['id_tema']==$list_topik[$i]['ID_TEMA']){
////                            $sum+=$count_responden[$j]['jumlah_responden'];
//                        }
//                    }
                            // REVISI
                            $sum+=count($count_responden); 
                    // menambahkan variable jumlah responden ke list topik
                    $list_topik[$i]['jumlah_responden']=$sum;
                }else {$list_topik[$i]['jumlah_responden']=0;}

                // mengambil jumlah course pada suatu id_tema
                $count_course = $this->db->query('SELECT distinct KODE_PELATIHAN,ANGKATAN,ID_TEMA FROM `sesi_pelatihan`  where ID_TEMA='.$list_topik[$i]['ID_TEMA'].'')->result_array();
                if (count($count_course)>0){
                    // menambahkan variable jumlah course ke list topik
                    $list_topik[$i]['jumlah_course']=count($count_course);
                }else {$list_topik[$i]['jumlah_course']=0;}
            }

        }
        
        // tabbing topic
        $MAX_TOPIC = 5;
        if (count($list_topik)<6){
            $jumlah_tab = 1;
        }else{
            $jumlah_tab = ((count($list_topik) - (count($list_topik) % $MAX_TOPIC)) / $MAX_TOPIC) + 1;
        }
        if (count($list_topik)>5){
            $counter=0;            
            if ($page<=1){
                $j=0;
                while(($j<count($list_topik)) && ($counter<5)){
                    $list_topik_page[$counter] = $list_topik[$j];
                    $counter+=1;
                    $j+=1;
                }                                
            }
            else{
                for ($i=1;$i<=count($list_topik);$i++){
                    if ((($page*$MAX_TOPIC)-5 < $i) && (($page*$MAX_TOPIC) >= $i)){
                        $list_topik_page[$counter] = $list_topik[$i-1];
                        $counter+=1;
                    }
                }                
            }
        }else{
            $list_topik_page = $list_topik;                        
        }
        
        $term_sf = $this->session->userdata('no_term');
        $tahun_sf = $this->session->userdata('tahun_term');

        $query_term = $this->db->query('select * from term')->result_array();

        $list_term = array();
        $cur_term=0;
        if (count($query_term)!=0){
            for ($p=0;$p<count($query_term);$p++){
                $list_term[$query_term[$p]['NO_TERM'].'/'.$query_term[$p]['TAHUN']]="Term ".$query_term[$p]['NO_TERM']." - ".$query_term[$p]['TAHUN'];
            }
        }
        else{
            $list_term = $query_term;
        }
        $header_term['list_term']=$list_term;
        $header_term['cur_term']=$term_sf."/".$tahun_sf;
        $attr = 'id="list_term" onChange="call(\''.base_url().'polling/polling_con/\')"';
        $header_term['atribut']=$attr;
        $display['cur_term']=$term_sf."/".$tahun_sf;

        
        // memasukkan ke variabel untuk view
        $display['list_topik'] = $list_topik_page;
        $display['tab'] = $jumlah_tab;
        $this->load->view('polling/polling_header_view',$header_term);
        $this->load->view('polling/bytopic',$display);
        $this->load->view('polling/polling_footer_view');

    }
    function change_term($term_sf, $tahun_sf){
//        echo "<br>".$this->session->userdata('no_term');
//        echo "<br>".$this->session->userdata('tahun_term');
        $this->session->set_userdata('no_term', $term_sf);
        $this->session->set_userdata('tahun_term', $tahun_sf);
//        echo "<br>".$this->session->userdata('no_term');
//        echo "<br>".$this->session->userdata('tahun_term');
        redirect(base_url().'polling/polling_con/');
    }
    function home_course($page=1){
         if ($this->session->userdata('login')!=TRUE) {
            redirect(base_url().'feedback_result/feedback_result_con/error_display');
        }
        // memgambil list course
        $list_course = $this->db->query('SELECT distinct KODE_PELATIHAN,ANGKATAN,count(ID_TEMA) as jumlah_topik FROM sesi_pelatihan WHERE ID_TEMA>-1 group by KODE_PELATIHAN,ANGKATAN')->result_array();
        // mengambil nama course
        if (count($list_course)>0){ // minimal ada 1 course
            for ($i=0;$i<count($list_course);$i++){
                $nama_course = $this->db->query('SELECT NAMA_PELATIHAN from pelatihan where KODE_PELATIHAN="'.$list_course[$i]['KODE_PELATIHAN'].'"')->result_array();
                // menambahkan variabel nama course
                $list_course[$i]['NAMA_PELATIHAN'] = $nama_course[0]['NAMA_PELATIHAN'];
            }
        }

        // tabbing course
        $MAX_COURSE = 5;
        if (count($list_course)<6){
            $jumlah_tab = 1;
        }else{
            $jumlah_tab = ((count($list_course) - (count($list_course) % $MAX_COURSE)) / $MAX_COURSE) + 1;
        }
        if (count($list_course)>5){
            $counter=0;            
            if ($page<=1){
                $j=0;
                while(($j<count($list_course)) && ($counter<5)){
                    $list_course_page[$counter] = $list_course[$j];
                    $counter+=1;
                    $j+=1;
                }                                
            }
            else{
                for ($i=1;$i<=count($list_course);$i++){
                    if ((($page*$MAX_COURSE)-5 < $i) && (($page*$MAX_COURSE) >= $i)){
                        $list_course_page[$counter] = $list_course[$i-1];
                        $counter+=1;
                    }
                }                
            }
        }else{
            $list_course_page = $list_course;                        
        }

		
		$term_sf = $this->session->userdata('no_term');
		$tahun_sf = $this->session->userdata('tahun_term');
		
		$query_term = $this->db->query('select * from term')->result_array();
		
		$list_term = array();
        $cur_term=0;
        if (count($query_term)!=0){
            for ($p=0;$p<count($query_term);$p++){
                $list_term[$query_term[$p]['NO_TERM'].'/'.$query_term[$p]['TAHUN']]="Term ".$query_term[$p]['NO_TERM']." - ".$query_term[$p]['TAHUN'];
            }
        }
        else{
            $list_term = $query_term;
        }
        $header_term['list_term']=$list_term;
        $header_term['cur_term']=$term_sf."/".$tahun_sf;
        $attr = 'id="list_term" onChange="call(\''.base_url().'polling/polling_con/\')"';
        $header_term['atribut']=$attr;
		
		
        $display['tab'] = $jumlah_tab;
        $display['list_course'] = $list_course_page;

        $this->load->view('polling/polling_header_view',$header_term);
        $this->load->view('polling/bycourse',$display);
        $this->load->view('polling/polling_footer_view');

    }
    function polling_topic($id_tema=0){
         if ($this->session->userdata('login')!=TRUE) {
            redirect(base_url().'feedback_result/feedback_result_con/error_display');
        }
        // mengambil nama topik
        $nama_tema = $this->db->query('SELECT NAMA_TEMA FROM tema_poling where ID_TEMA='.$id_tema.'')->result_array();
        if (count($nama_tema)>0){ // topik ditemukan

            // mengambil list course
            $term_sf = $this->session->userdata('no_term');
            $tahun_sf = $this->session->userdata('tahun_term');
            $list_course = $this->db->query('SELECT distinct sesi_pelatihan.KODE_PELATIHAN, sesi_pelatihan.ANGKATAN from sesi_pelatihan inner join kelas on kelas.KODE_PELATIHAN=sesi_pelatihan.KODE_PELATIHAN where TERM='.$term_sf.' and TAHUN='.$tahun_sf.' and kelas.STATUS<>"BELUM" and ID_TEMA='.$id_tema.'')->result_array();

            // mengambil nama course
            if (count($list_course)>0){ // minimal ada 1 course
                for ($i=0;$i<count($list_course);$i++){
                    $nama_course = $this->db->query('SELECT NAMA_PELATIHAN from pelatihan where KODE_PELATIHAN="'.$list_course[$i]['KODE_PELATIHAN'].'"')->result_array();
                    // menambahkan variabel nama course
                    $list_course[$i]['NAMA_PELATIHAN'] = $nama_course[0]['NAMA_PELATIHAN'];

                    // mengambil jumlah responden dengan id_tema tertentu versi tanpa nomor sesi
//                    $count_responden = $this->db->query('SELECT count(ID_USER) as jumlah_responden,jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
//                        sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$id_tema.' and sesi_pelatihan.KODE_PELATIHAN="'.$list_course[$i]['KODE_PELATIHAN'].'" and sesi_pelatihan.ANGKATAN='.$list_course[$i]['ANGKATAN'].' group by jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA')->result_array();
                    //REVISI
                    $count_responden = $this->db->query('SELECT distinct ID_USER as jumlah_responden,jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
                        sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$id_tema.' and sesi_pelatihan.KODE_PELATIHAN="'.$list_course[$i]['KODE_PELATIHAN'].'" and sesi_pelatihan.ANGKATAN='.$list_course[$i]['ANGKATAN'].'')->result_array();
                    if (count($count_responden)>0){
                        // menambahkan variable jumlah responden ke list topik
                        //$list_course[$i]['jumlah_responden']=$count_responden[0]['jumlah_responden'];
                        // REVISI
                        $list_course[$i]['jumlah_responden']=count($count_responden);
                        
                    }else {$list_course[$i]['jumlah_responden']=0;}
                }

                // mengambil jumlah course yang aktif saja yaitu jumlah respondennya lebih dari 1
                $sum = 0;
                for ($i=0;$i<count($list_course);$i++) {
                    // if diaktifkan jika yang jumlah respondennya nol diabaikan
                    //if ($list_course[$i]['jumlah_responden']>0){
                        $sum+=1;
                    //}
                }
                $display['jumlah_course'] = $sum;

            }
            
            // memasukkan ke variable view
            $display['list_course'] = $list_course;
            // memasukkan ke variable view
            $display['nama_tema'] = $nama_tema[0]['NAMA_TEMA'];
            // memasukkan ke variable view
            $display['id_tema'] = $id_tema;
            
        }else {$display=0;}

		
		$term_sf = $this->session->userdata('no_term');
		$tahun_sf = $this->session->userdata('tahun_term');
		
		$query_term = $this->db->query('select * from term')->result_array();

		$list_term = array();
        $cur_term=0;
        if (count($query_term)!=0){
            for ($p=0;$p<count($query_term);$p++){
                $list_term[$query_term[$p]['NO_TERM'].'/'.$query_term[$p]['TAHUN']]="Term ".$query_term[$p]['NO_TERM']." - ".$query_term[$p]['TAHUN'];
            }
        }
        else{
            $list_term = $query_term;
        }
        $header_term['list_term']=$list_term;
        $header_term['cur_term']=$term_sf."/".$tahun_sf;
        $attr = 'id="list_term" onChange="call(\''.base_url().'polling/polling_con/\')"';
        $header_term['atribut']=$attr;
		

        $this->load->view('polling/polling_header_view',$header_term);
        $this->load->view('polling/bytopic2',$display);
        $this->load->view('polling/polling_footer_view');
    }
    function polling_course($kode_pelatihan,$angkatan){
         if ($this->session->userdata('login')!=TRUE) {
            redirect(base_url().'feedback_result/feedback_result_con/error_display');
        }
        // mengambil nama course
        $nama_course = $this->db->query('SELECT NAMA_PELATIHAN FROM pelatihan where KODE_PELATIHAN="'.$kode_pelatihan.'"')->result_array();
        if (count($nama_course)>0){ // course ditemukan
            // mengambil list topik
            $list_topik = $this->db->query('SELECT distinct sesi_pelatihan.ID_TEMA as id_topik,tema_poling.NAMA_TEMA as nama_topik FROM `sesi_pelatihan` natural join tema_poling where ID_TEMA>-1 and sesi_pelatihan.KODE_PELATIHAN="'.$kode_pelatihan.'" and sesi_pelatihan.ANGKATAN='.$angkatan.'')->result_array();

            if (count($list_topik)>0){ // minimal ada satu topik
                for ($i = 0;$i<count($list_topik);$i++){
                    // versi setiap id user diitung satu
                    // mengambil participant setiap topik
//                    $participant = $this->db->query('SELECT distinct jawaban.ID_USER FROM tema_poling natural join
//                        daftar_pertanyaan natural join pertanyaan natural join jawaban where
//                        tema_poling.ID_TEMA='.$list_topik[$i]['id_topik'].' and jawaban.KODE_PELATIHAN="'.$kode_pelatihan.'"
//                            and jawaban.ANGKATAN='.$angkatan.'')->result_array();
                    //$list_topik[$i]['jumlah_participant'] = count($participant);
                    //echo count($participant);

                    // versi setiap pertanyaan diitung satu
                    // mengambil jumlah responden dengan id_tema tertentu versi tanpa nomor sesi
//                    $count_responden = $this->db->query('SELECT count(ID_USER) as jumlah_responden,jawaban.KODE_PELATIHAN,
//                        jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
//                        sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$list_topik[$i]['id_topik'].' and sesi_pelatihan.KODE_PELATIHAN="'.$kode_pelatihan.'"
//                            and sesi_pelatihan.ANGKATAN='.$angkatan.' group by jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,
//                                sesi_pelatihan.ID_TEMA')->result_array();
                    // REVISI
                    $count_responden = $this->db->query('SELECT distinct ID_USER as jumlah_responden,jawaban.KODE_PELATIHAN,
                        jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
                        sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$list_topik[$i]['id_topik'].' and sesi_pelatihan.KODE_PELATIHAN="'.$kode_pelatihan.'"
                            and sesi_pelatihan.ANGKATAN='.$angkatan.'')->result_array();
                    if (count($count_responden)>0){
                        // menambahkan variable jumlah responden ke list topik
                        // REVISI
//                        $jumlah_responden=$count_responden[0]['jumlah_responden'];
                            $jumlah_responden = count($count_responden);
                        }else {$jumlah_responden=0;}
                    $list_topik[$i]['jumlah_participant'] = $jumlah_responden;

                }
            }
        }else {$list_topik=null;}
		
		$term_sf = $this->session->userdata('no_term');
		$tahun_sf = $this->session->userdata('tahun_term');
		
		$query_term = $this->db->query('select * from term')->result_array();
		
		
		$list_term = array();
        $cur_term=0;
        if (count($query_term)!=0){
            for ($p=0;$p<count($query_term);$p++){
                $list_term[$query_term[$p]['NO_TERM'].'/'.$query_term[$p]['TAHUN']]="Term ".$query_term[$p]['NO_TERM']." - ".$query_term[$p]['TAHUN'];
            }
        }
        else{
            $list_term = $query_term;
        }
        $header_term['list_term']=$list_term;
        $header_term['cur_term']=$term_sf."/".$tahun_sf;
		
        $display['kode_pelatihan']  = $kode_pelatihan;
        $display['angkatan']  = $angkatan;
        $display['nama_course']  = $nama_course;
        $display['list_topik']  = $list_topik;
        $attr = 'id="list_term" onChange="call(\''.base_url().'polling/polling_con/\')"';
        $header_term['atribut']=$attr;
        
		
        $this->load->view('polling/polling_header_view',$header_term);
        $this->load->view('polling/bycourse2',$display);
        $this->load->view('polling/polling_footer_view');

    }
    function hasil_topic($id_tema, $kode_pelatihan,$angkatan){
         if ($this->session->userdata('login')!=TRUE) {
            redirect(base_url().'feedback_result/feedback_result_con/error_display');
        }
        // mengambil nama course
        $nama_course = $this->db->query('SELECT NAMA_PELATIHAN FROM pelatihan where KODE_PELATIHAN="'.$kode_pelatihan.'"')->result_array();
        $jumlah_responden = 0;
        if (count($nama_course)>0){
            // alternatif mengambil jumlah responden
            /*
                // mengambil jumlah responden dengan id_tema tertentu versi tanpa nomor sesi
                $count_responden = $this->db->query('SELECT count(ID_USER) as jumlah_responden,jawaban.KODE_PELATIHAN,
                    jawaban.ANGKATAN,sesi_pelatihan.ID_TEMA as id_tema FROM jawaban natural join
                    sesi_pelatihan where sesi_pelatihan.ID_TEMA='.$id_tema.' and sesi_pelatihan.KODE_PELATIHAN="'.$kode_pelatihan.'"
                        and sesi_pelatihan.ANGKATAN='.$angkatan.' group by jawaban.KODE_PELATIHAN,jawaban.ANGKATAN,
                            sesi_pelatihan.ID_TEMA')->result_array();
                if (count($count_responden)>0){
                    // menambahkan variable jumlah responden ke list topik
                    $jumlah_responden=$count_responden[0]['jumlah_responden'];
                }else {$jumlah_responden=0;}
                // memasukkan ke variable view
                $display['jumlah_responden'] = $jumlah_responden;
            */
            // mengambil daftar pertanyaan
            $query_pertanyaan = $this->db->query('SELECT pertanyaan.ID_PERTANYAAN as id_pertanyaan,tema_poling.ID_TEMA as id_tema,
                tema_poling.NAMA_TEMA as nama_tema, pertanyaan.ISI_PERTANYAAN as isi_pertanyaan,
                pertanyaan.TIPE_PERTANYAAN as tipe_pertanyaan FROM tema_poling natural join daftar_pertanyaan
                natural join pertanyaan where tema_poling.ID_TEMA='.$id_tema.'')->result_array();
            if (count($query_pertanyaan)>0){
                $counter = 0;
                for ($q=0;$q<count($query_pertanyaan);$q++){
                    // mengambil daftar pertanyaan
                    $query_pertanyaan2 = $this->db->query('SELECT ID_PERTANYAAN FROM jawaban where KODE_PELATIHAN="'.$kode_pelatihan.'" and
                        ANGKATAN='.$angkatan.' and ID_PERTANYAAN='.$query_pertanyaan[$q]['id_pertanyaan'].'')->result_array();
                    if (count($query_pertanyaan2)>0){
                        // debugging
//                        for ($p=0;$p<count($query_pertanyaan2);$p++){
//                            echo $query_pertanyaan2[$p]['ID_PERTANYAAN']." dengan q=".$q."<br>";
//                        }

                         //memasukkan ke list sebenarnya
                         $list_pertanyaan[$counter]['id_pertanyaan'] = $query_pertanyaan[$counter]['id_pertanyaan'];
                         $list_pertanyaan[$counter]['id_tema'] = $query_pertanyaan[$counter]['id_tema'];
                         $list_pertanyaan[$counter]['nama_tema'] = $query_pertanyaan[$counter]['nama_tema'];
                         $list_pertanyaan[$counter]['isi_pertanyaan'] = $query_pertanyaan[$counter]['isi_pertanyaan'];
                         $list_pertanyaan[$counter]['tipe_pertanyaan'] = $query_pertanyaan[$counter]['tipe_pertanyaan'];
//                         $list_pertanyaan[$counter]['list_jawaban'] = $query_pertanyaan2;

                         //dipilah pilah
                         $counter+=1;
                    }
                }
            }
            if (isset($list_pertanyaan)){
                // debugging
//                for ($p=0;$p<count($list_pertanyaan);$p++){
//                    echo $list_pertanyaan[$p]['isi_pertanyaan']." dengan p=".$p."<br>";
//                }
                
                if (count($list_pertanyaan)>0){ // minimal ada satu pertanyaan
                    
                    for ($i=0;$i<count($list_pertanyaan);$i++){
                        if (($list_pertanyaan[$i]['tipe_pertanyaan']=="multi") || ($list_pertanyaan[$i]['tipe_pertanyaan']=="single")){ // pilihan ganda
//                        echo "ini multi atau single".$list_pertanyaan[$i]['id_pertanyaan']."<br>";
                            // mengambil persentase jawaban pilihan ganda
                            $list_jawaban = $this->db->query('SELECT count(distinct ID_USER) as votes,ID_PILIHAN,ID_PERTANYAAN,KODE_PELATIHAN,ANGKATAN
                                FROM jawaban WHERE ID_PERTANYAAN='.$list_pertanyaan[$i]['id_pertanyaan'].' and KODE_PELATIHAN="'.$kode_pelatihan.'"
                                    and ANGKATAN='.$angkatan.'
                                   group by ID_PERTANYAAN,KODE_PELATIHAN,ANGKATAN,ID_PILIHAN')->result_array();

                            if (count($list_jawaban)>0){
                                // mengambil isi pilihan
                                for($j=0;$j<count($list_jawaban);$j++){
                                    $isi_pilihan = $this->db->query('SELECT ISI_PILIHAN FROM daftar_pilihan WHERE 
                                        ID_PERTANYAAN='.$list_jawaban[$j]['ID_PERTANYAAN'].' and 
                                            ID_PILIHAN='.$list_jawaban[$j]['ID_PILIHAN'].'')->result_array();
                                    // debugging
                                    //echo $list_jawaban[$j]['ID_PERTANYAAN'].",";
                                    //echo $list_jawaban[$j]['ID_PILIHAN']."<br>";
                                    //echo $kode_pelatihan."=".$angkatan."<br>";
                                    //echo $i.$isi_pilihan[0]['ISI_PILIHAN']."<br>";
                                    $list_jawaban[$j]['isi_pilihan'] = $isi_pilihan[0]['ISI_PILIHAN'];
                                }
                                //echo $list_pertanyaan[$i]['tipe_pertanyaan'];
                                

                                // menghitung jumlah peserta
                                $count=0;
                                for($j=0;$j<count($list_jawaban);$j++){
                                    $count+=$list_jawaban[$j]['votes'];
                                    //echo $list_jawaban[$j]['votes'];
                                }
                                // menambah jumlah responden
                                $jumlah_responden += $count;
                                
                                // menghitung persentase
                                for($j=0;$j<count($list_jawaban);$j++){
                                    $num = $list_jawaban[$j]['votes']/$count;
                                    // mengubah ke decimal dua angka dibelakang koma
                                    $decimal_part = $num - floor($num);
                                    if ($decimal_part==0){
                                        $result =  number_format($num, 0, '.', '');
                                    }else{
                                        $result =  number_format($num, 2, '.', '');
                                    }
                                    // debugging
    //                                    echo $result."<br>";
                                    $result = $result*100; // pengkalian persentase
                                    $list_jawaban[$j]['persentase'] = $result;
                                }
                            }
                        }else{ // essay
//                            echo "ini essay".$list_pertanyaan[$i]['id_pertanyaan']."<br>";
                            // mengambil jawaban essay
                            $list_jawaban = $this->db->query('SELECT ID_USER,JAWABAN,ID_PERTANYAAN,KODE_PELATIHAN,ANGKATAN
                                FROM jawaban WHERE ID_PERTANYAAN='.$list_pertanyaan[$i]['id_pertanyaan'].' and KODE_PELATIHAN="'.$kode_pelatihan.'"
                                    and ANGKATAN='.$angkatan.'')->result_array();
                            if (count($list_jawaban)>0){ // minimal ada satu jawaban
                                // mengambil nama user
                                for ($k=0;$k<count($list_jawaban);$k++){
//                                    echo $list_pertanyaan[$i]['id_pertanyaan']."-".$kode_pelatihan."-".$angkatan."<BR>".$list_jawaban[$k]['JAWABAN']."<br>";
                                    $list_nama = $this->db->query('SELECT NAMA FROM user where ID='.$list_jawaban[$k]['ID_USER'].'')->result_array();
                                    $list_jawaban[$k]['NAMA_USER'] = $list_nama[0]['NAMA'];
                                }
                                // menambah jumlah responden    
                                $jumlah_responden += count($list_jawaban);
                            }
                        }
                        $list_pertanyaan[$i]['list_jawaban'] = $list_jawaban;
                    }
                    // REVISI
                    $query_responden = $this->db->query('SELECT distinct ID_USER 
                        FROM jawaban WHERE KODE_PELATIHAN="'.$kode_pelatihan.'"
                            and ANGKATAN='.$angkatan.'')->result_array();
                    $jumlah_responden = count($query_responden);
                }
                $display['list_pertanyaan'] = $list_pertanyaan;

            }
        }
        // memasukkan ke variable view
		
		$term_sf = $this->session->userdata('no_term');
		$tahun_sf = $this->session->userdata('tahun_term');
		
		$query_term = $this->db->query('select * from term')->result_array();
		
		
		$list_term = array();
        $cur_term=0;
        if (count($query_term)!=0){
            for ($p=0;$p<count($query_term);$p++){
                $list_term[$query_term[$p]['NO_TERM'].'/'.$query_term[$p]['TAHUN']]="Term ".$query_term[$p]['NO_TERM']." - ".$query_term[$p]['TAHUN'];
            }
        }
        else{
            $list_term = $query_term;
        }
        $header_term['list_term']=$list_term;
        $header_term['cur_term']=$term_sf."/".$tahun_sf;
		
        $display['jumlah_responden'] = $jumlah_responden;        
        $display['id_tema'] = $id_tema;
        $display['nama_course'] = $nama_course;
        $display['kode_pelatihan'] = $kode_pelatihan;
        $display['angkatan'] = $angkatan;
        $attr = 'id="list_term" onChange="call(\''.base_url().'polling/polling_con/\')"';
        $header_term['atribut']=$attr;
        
        $this->load->view('polling/polling_header_view',$header_term);
        $this->load->view('polling/poll_hasil_per_topic',$display);
        $this->load->view('polling/polling_footer_view');

    }
    function hasil_topic_all($id_tema){
         if ($this->session->userdata('login')!=TRUE) {
            redirect(base_url().'feedback_result/feedback_result_con/error_display');
        }
        // mengambil jumlah kelas yang memiliki tema yang bersangkutan
        $term_sf = $this->session->userdata('no_term');
        $tahun_sf = $this->session->userdata('tahun_term');
        $course= $this->db->query('SELECT distinct sesi_pelatihan.KODE_PELATIHAN, sesi_pelatihan.ANGKATAN from sesi_pelatihan inner join kelas on kelas.KODE_PELATIHAN=sesi_pelatihan.KODE_PELATIHAN where TERM='.$term_sf.' and TAHUN='.$tahun_sf.' and kelas.STATUS<>"BELUM" and ID_TEMA='.$id_tema.'')->result_array();
        //$course = $this->db->query('SELECT KODE_PELATIHAN,ANGKATAN FROM sesi_pelatihan where ID_TEMA="'.$id_tema.'"')->result_array();
        $responden = 0;
        // mengambil daftar pertanyaan
        $list_pertanyaan = $this->db->query('SELECT pertanyaan.ID_PERTANYAAN as id_pertanyaan,tema_poling.ID_TEMA as id_tema,
            tema_poling.NAMA_TEMA as nama_tema, pertanyaan.ISI_PERTANYAAN as isi_pertanyaan,
            pertanyaan.TIPE_PERTANYAAN as tipe_pertanyaan FROM tema_poling natural join daftar_pertanyaan
            natural join pertanyaan where tema_poling.ID_TEMA='.$id_tema.'')->result_array();
        if (count($list_pertanyaan)>0){ // minimal ada satu pertanyaan
                for ($i=0;$i<count($list_pertanyaan);$i++){
                    if (($list_pertanyaan[$i]['tipe_pertanyaan']=="multi") || ($list_pertanyaan[$i]['tipe_pertanyaan']=="single")){ // pilihan ganda
//                        echo "ini multi atau single".$list_pertanyaan[$i]['id_pertanyaan']."<br>";
                        // mengambil persentase jawaban pilihan ganda
                        $list_jawaban = $this->db->query('SELECT count(distinct ID_USER) as votes,ID_PILIHAN,ID_PERTANYAAN
                            FROM jawaban WHERE ID_PERTANYAAN='.$list_pertanyaan[$i]['id_pertanyaan'].' 
                                group by ID_PERTANYAAN,ID_PILIHAN')->result_array();
                        if (count($list_jawaban)>0){
                            // mengambil isi pilihan
                            for($j=0;$j<count($list_jawaban);$j++){
                                $isi_pilihan = $this->db->query('SELECT ISI_PILIHAN FROM daftar_pilihan WHERE 
                                    ID_PERTANYAAN='.$list_jawaban[$j]['ID_PERTANYAAN'].' and 
                                        ID_PILIHAN='.$list_jawaban[$j]['ID_PILIHAN'].'')->result_array();
                                // debugging
                                // echo $i.$isi_pilihan[0]['ISI_PILIHAN']."<br>";
                                $list_jawaban[$j]['isi_pilihan'] = $isi_pilihan[0]['ISI_PILIHAN'];
                            }


                            // menghitung jumlah peserta
                            $count=0;
                            for($j=0;$j<count($list_jawaban);$j++){
                                $count+=$list_jawaban[$j]['votes'];
                            }
                            // menambah responden
                            $responden+=$count;
                            // menghitung persentase
                            for($j=0;$j<count($list_jawaban);$j++){
                                $num = $list_jawaban[$j]['votes']/$count;
                                // mengubah ke decimal dua angka dibelakang koma
                                $decimal_part = $num - floor($num);
                                if ($decimal_part==0){
                                    $result =  number_format($num, 0, '.', '');
                                }else{
                                    $result =  number_format($num, 2, '.', '');
                                }
                                // debugging
//                                    echo $result."<br>";
                                $result = $result*100; // pengkalian persentase
                                $list_jawaban[$j]['persentase'] = $result;
                            }
                        }
                    }else{ // essay
//                            echo "ini essay".$list_pertanyaan[$i]['id_pertanyaan']."<br>";
                        // mengambil jawaban essay
                        $list_jawaban = $this->db->query('SELECT ID_USER,JAWABAN,ID_PERTANYAAN
                            FROM jawaban WHERE ID_PERTANYAAN='.$list_pertanyaan[$i]['id_pertanyaan'].'')->result_array();
                        if (count($list_jawaban)>0){ // minimal ada satu jawaban
                            // mengambil nama user
                            for ($k=0;$k<count($list_jawaban);$k++){
//                                    echo $list_pertanyaan[$i]['id_pertanyaan']."-".$kode_pelatihan."-".$angkatan."<BR>".$list_jawaban[$k]['JAWABAN']."<br>";
                                $list_nama = $this->db->query('SELECT NAMA FROM user where ID='.$list_jawaban[$k]['ID_USER'].'')->result_array();
                                $list_jawaban[$k]['NAMA_USER'] = $list_nama[0]['NAMA'];
                            }
                            // menambah responden
                            $responden+=count($list_jawaban);
                        }
                    }
                    $list_pertanyaan[$i]['list_jawaban'] = $list_jawaban;
                }
                // REVISI
                $query_responden = $this->db->query('SELECT distinct ID_USER from jawaban where ID_PERTANYAAN in (select ID_PERTANYAAN from daftar_pertanyaan where ID_TEMA='.$id_tema.')')->result_array();
                $responden = count($query_responden);
        }
		
		$term_sf = $this->session->userdata('no_term');
		$tahun_sf = $this->session->userdata('tahun_term');
		
		$query_term = $this->db->query('select * from term')->result_array();
		
		$list_term = array();
        $cur_term=0;
        if (count($query_term)!=0){
            for ($p=0;$p<count($query_term);$p++){
                $list_term[$query_term[$p]['NO_TERM'].'/'.$query_term[$p]['TAHUN']]="Term ".$query_term[$p]['NO_TERM']." - ".$query_term[$p]['TAHUN'];
            }
        }
        else{
            $list_term = $query_term;
        }
        $header_term['list_term']=$list_term;
        $header_term['cur_term']=$term_sf."/".$tahun_sf;
		
        $display['list_pertanyaan'] = $list_pertanyaan;
        $display['jumlah_course'] = count($course);
        $display['id_tema'] = $id_tema;
        $display['responden'] = $responden;
        $attr = 'id="list_term" onChange="call(\''.base_url().'polling/polling_con/\')"';
        $header_term['atribut']=$attr;
        
        $this->load->view('polling/polling_header_view',$header_term);
        $this->load->view('polling/poll_hasil_per_topicALL',$display);
        $this->load->view('polling/polling_footer_view');

    }


    function login() {
        if ($this->session->userdata('login')==TRUE) {
            redirect(base_url().'polling/polling_con/start_home');
        }
	$kosong['list_term']=array();
        $this->load->view('polling/polling_header_view',$kosong);
        $this->load->view('polling/form_login');
        $this->load->view('polling/polling_footer_view');
    }
    function proses_login() {
        //mencegah ada yang langsung ke url proses_login, jenis error 0
        if(!isset($_POST['username'])||!isset($_POST['password'])) {
            redirect(base_url().'feedback_result/feedback_result_con/error_display');
        }

        $usr = $this->input->post('username');
        $pwd = md5($this->input->post('password'));

        $query_peserta = $this->db->query('select * from user natural join pengajar where user.USERNAME="'.$usr.'" and user.PASSWORD="'.$pwd.'" and pengajar.ID=user.ID');
        if(count($query_peserta->result_array())!=1) {
            //error jika ada kesalahan login, jenis error 1
            redirect(base_url().'feedback_result/feedback_result_con/error_display/1');
        }else {

            $query_term = $this->db->query('select * from term where STATUS="SEDANG"');
            $tgl_now=date('Y-m-d', time());
            $data_peserta=$query_peserta->row_array();
            $data_term=$query_term->row_array();
            $data_session = array(
                    'id'=>$data_peserta['ID'],
                    'nama'=>$data_peserta['NAMA'],
                    'foto'=>$data_peserta['FOTO'],
                    'no_term'=>$data_term['NO_TERM'],
                    'tahun_term'=>$data_term['TAHUN'],
                    'login'=>true,
            );
            $this->session->set_userdata($data_session);

            redirect(base_url().'polling/polling_con/start_home');
        }
    }

    function error_display($jenis=0) {
        $display['message_utama']='';
        $display['message_penjelasan']='';
        switch($jenis) {
            case 0:
                $display['message_utama']='Anda harus login terlebih dahulu';
                break;
            case 1:
                $display['message_utama']='Ada kesalahan pada username atau password anda';
                break;
            case 2:
                $display['message_utama']='Sekarang tidak ada SF yang tersedia '.$jam_sekarang = date('H.i',time());
                ;
                $display['message_penjelasan']='Silakan isi SF pada sesi yang aktif';
                break;
            case 3:
                $display['message_utama']='Anda sudah mengisi SF untuk sesi ini';
                $display['message_penjelasan']='Silakan isi SF pada sesi yang lain';
                break;
            case 4:
                $display['message_utama']='Course yang dipilih tidak ada datanya';
                $display['message_penjelasan']='Silakan isi terlebih dahulu datanya';
                break;
        }

		$term_sf = $this->session->userdata('no_term');
		$tahun_sf = $this->session->userdata('tahun_term');
		
		$query_term = $this->db->query('select * from term')->result_array();
		
		
		$list_term = array();
        $cur_term=0;
        if (count($query_term)!=0){
            for ($p=0;$p<count($query_term);$p++){
                $list_term[$query_term[$p]['NO_TERM'].'/'.$query_term[$p]['TAHUN']]="Term ".$query_term[$p]['NO_TERM']." - ".$query_term[$p]['TAHUN'];
            }
        }
        else{
            $list_term = $query_term;
        }
        $header_term['list_term']=$list_term;
        $header_term['cur_term']=$term_sf."/".$tahun_sf;
		
        $this->load->view('feedback_result/feedback_result_header_view',$header_term);
        $this->load->view('feedback_result/error_display',$display);
        $this->load->view('feedback_result/feedback_result_footer_view');
    }

} 
?>
